# Copyright (C) 2026. Logiciel élaboré par l'État, via le DEPS.
# Nom des auteures : Flore Cornuet et Camille Parent, DEPS.
# Ce programme informatique a été développé par le DEPS.
# Il permet de produire les résultats du Culture Études 1-2026.

# Ce programme a été exécuté en septembre 2026 avec la version 4.5.3 de R.
# La publication peut être consultée sur le site du Deps. 
# Ce programme utilise les données du pass Culture et du recensement de la population 2022.

# Bien qu'il n'existe aucune obligation légale à ce sujet, les utilisateurs de ce programme sont
# invités à signaler au DEPS leurs travaux issus de la réutilisation de ce code, ainsi que les
# éventuels problèmes ou anomalies qu'ils y rencontreraient, en écrivant à contact.deps@culture.gouv.fr .
# Ce logiciel est régi par la licence EUPL V1.2 soumise au droit français et européen, respectant
# les principes de diffusion des logiciels libres. Vous pouvez utiliser, modifier et/ou redistribuer
# ce programme sous les conditions de la licence EUPL V1.2, telle que diffusée sur
# https://eupl.eu/1.2/fr/ .
# En contrepartie de l'accessibilité au code source et des droits de copie, de modification et de
# redistribution accordés par cette licence, il n'est offert aux utilisateurs qu'une garantie
# limitée. Pour les mêmes raisons, seule une responsabilité restreinte pèse sur les auteures du
# programme, le titulaire des droits patrimoniaux et les concédants successifs.
# À cet égard l'attention de l'utilisateur est attirée sur les risques associés au chargement, à
# l'utilisation, à la modification et/ou au développement et à la reproduction du logiciel par
# l'utilisateur étant donné sa spécificité de logiciel libre, qui peut le rendre complexe à
# manipuler et qui le réserve donc à des développeurs et des professionnels avertis possédant des
# connaissances informatiques approfondies. Les utilisateurs sont donc invités à charger et tester
# l'adéquation du logiciel à leurs besoins dans des conditions permettant d'assurer la sécurité de
# leurs systèmes et ou de leurs données et, plus généralement, à l'utiliser et l'exploiter dans les
# mêmes conditions de sécurité.


# chargement des packages ####

library(data.table); library(tidyverse); library(arrow); library(kableExtra)


# chargement des tables intermédaires ####

tab_finale <- setDT(read_parquet(paste0(chemin_donnees, "tables_intermediaires/tab_finale.parquet")))

pop_rp <- read.csv(chemin_pop)
setDT(pop_rp)

# === Dénominateur RP par sexe et cohorte (population à l'année des 18 ans) ===

rp_sexe <- rbindlist(list(
  pop_rp[annee == 2021 & annee_naissance == 2003, .(annee_naissance = 2003, sexe, pop = pop_dep)],
  pop_rp[annee == 2022 & annee_naissance == 2004, .(annee_naissance = 2004, sexe, pop = pop_dep)],
  pop_rp[annee == 2023 & annee_naissance == 2005, .(annee_naissance = 2005, sexe, pop = pop_dep)]
))[, .(pop = sum(pop)), by = .(annee_naissance, sexe)]

rp_sexe[, sexe := fifelse(sexe == "Femmes", "F", "H")]

# === Numérateur : bénéficiaires chq300, champ création, par sexe et cohorte ===

num <- tab_finale[chq_300 == 1 &
                    champ_creation == 1 &
                    annee_naissance %in% 2003:2005 &
                    sexe %in% c("F","H"),
                  .(nb_user = sum(nb_user)), by = .(annee_naissance, sexe)]

# === Taux de recours ===

taux <- merge(num, rp_sexe, by = c("annee_naissance", "sexe"))
taux[, taux := round(nb_user / pop * 100)]

# === Pivot : année en ligne, sexe en colonne ===

tab4 <- dcast(taux, annee_naissance ~ sexe, value.var = "taux")
setnames(tab4, c("F","H"), c("Filles","Garçons"))

# === ligne Ensemble 2003-2005 ===

tot <- taux[, .(taux = round(sum(nb_user) / sum(pop) * 100)), by = sexe]
tot <- dcast(tot, . ~ sexe, value.var = "taux")[, .(annee_naissance = "2003-2005",
                                                    Filles = F, Garçons = H)]
tab4[, annee_naissance := as.character(annee_naissance)]
tab4 <- rbind(tab4, tot)

# === kableExtra ===

tab4 |>
  kbl(
    caption   = "Tableau 4 : Taux de recours au chèque de 300 euros par genre (en %)",
    col.names = c("Année de naissance", "Filles", "Garçons"),
    align     = c("l", "c", "c")
  ) |>
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = FALSE, position = "center"
  ) |>
  add_header_above(c(" " = 1, "Taux de recours" = 2)) |>
  footnote(
    general = paste0(
      "Lecture : 75 % des filles nées en 2003 ont recouru au pass Culture, ",
      "contre 66 % des garçons du même âge. ",
      "Champ : jeunes nés entre 2003 et 2005, chèques de 300 euros créés à partir ",
      "du 21 mai 2021 et expirant avant le 28 février 2025. ",
      "Source : données de l'application pass Culture."
    ),
    general_title = "", footnote_as_chunk = TRUE
  )

tab4